package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购订单明细展示视图（联表）
 * 包含明细字段、存货/单位名称以及订单头部字段
 */
public class BizPurchaseOrderItemView extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long itemId;

    /** 订单ID（用于前端操作保持不变） */
    private Long orderId;

    /** 采购订单编号 */
    private String orderNo;

    /** 存货编码 */
    private String inventoryCode;

    /** 存货名称（根据 inventoryCode 关联） */
    private String inventoryName;

    /** 订单数量 */
    private BigDecimal orderQuantity;

    /** 计量单位编码 */
    private String unitCode;

    /** 计量单位名称（根据 unitCode 关联） */
    private String unitName;

    /** 已打码数量 */
    private BigDecimal barcodedQuantity;

    /** 未打码数量 */
    private BigDecimal unbarcodedQuantity;

    /** 已入库数量 */
    private BigDecimal putawayQuantity;

    /** 明细状态 */
    private String itemStatus;

    /** 供货商编码（来自订单头） */
    private String supplierCode;

    /** 供货商名称（关联 sup_supplier） */
    private String supplierName;

    /** 采购时间（来自订单头） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 采购人（来自订单头） */
    private String purchaser;

    /** 交货时间（来自订单头） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;

    public Long getItemId() { return itemId; }
    public void setItemId(Long itemId) { this.itemId = itemId; }

    public Long getOrderId() { return orderId; }
    public void setOrderId(Long orderId) { this.orderId = orderId; }

    public String getOrderNo() { return orderNo; }
    public void setOrderNo(String orderNo) { this.orderNo = orderNo; }

    public String getInventoryCode() { return inventoryCode; }
    public void setInventoryCode(String inventoryCode) { this.inventoryCode = inventoryCode; }

    public String getInventoryName() { return inventoryName; }
    public void setInventoryName(String inventoryName) { this.inventoryName = inventoryName; }

    public BigDecimal getOrderQuantity() { return orderQuantity; }
    public void setOrderQuantity(BigDecimal orderQuantity) { this.orderQuantity = orderQuantity; }

    public String getUnitCode() { return unitCode; }
    public void setUnitCode(String unitCode) { this.unitCode = unitCode; }

    public String getUnitName() { return unitName; }
    public void setUnitName(String unitName) { this.unitName = unitName; }

    public BigDecimal getBarcodedQuantity() { return barcodedQuantity; }
    public void setBarcodedQuantity(BigDecimal barcodedQuantity) { this.barcodedQuantity = barcodedQuantity; }

    public BigDecimal getUnbarcodedQuantity() { return unbarcodedQuantity; }
    public void setUnbarcodedQuantity(BigDecimal unbarcodedQuantity) { this.unbarcodedQuantity = unbarcodedQuantity; }

    public BigDecimal getPutawayQuantity() { return putawayQuantity; }
    public void setPutawayQuantity(BigDecimal putawayQuantity) { this.putawayQuantity = putawayQuantity; }

    public String getItemStatus() { return itemStatus; }
    public void setItemStatus(String itemStatus) { this.itemStatus = itemStatus; }

    public String getSupplierCode() { return supplierCode; }
    public void setSupplierCode(String supplierCode) { this.supplierCode = supplierCode; }

    public String getSupplierName() { return supplierName; }
    public void setSupplierName(String supplierName) { this.supplierName = supplierName; }

    public Date getPurchaseDate() { return purchaseDate; }
    public void setPurchaseDate(Date purchaseDate) { this.purchaseDate = purchaseDate; }

    public String getPurchaser() { return purchaser; }
    public void setPurchaser(String purchaser) { this.purchaser = purchaser; }

    public Date getDeliveryDate() { return deliveryDate; }
    public void setDeliveryDate(Date deliveryDate) { this.deliveryDate = deliveryDate; }
}